Flutter集成rust到底有多好? 您所在的位置:网站首页 rust desktop Flutter集成rust到底有多好?

Flutter集成rust到底有多好?

#Flutter集成rust到底有多好?| 来源: 网络整理| 查看: 265

哈楼,我是老刘

老刘团队从0开始做Flutter差不多4年了。项目中也有一些地方使用到了FFI,例如加解密、压缩解压缩等。

那么在Flutter项目中集成Rust是否有价值呢?

我觉得是有的,但要区分以下几种具体情况。

Rust不能用来画界面

Flutter的体系结构,目前只能使用Dart作为UI的开发语言。

不支持使用其它编程语言调用Flutter SDK进行界面绘制操作。

因此即使引入Rust,也只能和C++一样,通过FFI进行调用,无法直接使用Rust进行界面UI的开发。

所以这个问题本质上是说Flutter中通过FFI调用的so库用C++和用Rust哪个实现更好?

对Flutter来说通过FFI调用的模块不关心是C++还是Rust

Flutter的FFI,从设计理念来说是屏蔽底层实现的。

所以只要能打成so库,用什么语言对Flutter来说都一样。

那么实现so库,Rust和C++哪个更好呢?

我们要来看看在什么场景下会通过FFI调用so库。

Flutter项目使用FFI的三种场景

以老刘自己的项目为例,我们使用FFI主要有三种情况

1、性能需求

在一些性能要求比较高的场景下,通过FFI调用底层的so库实现提高性能的目标。

比如我们项目中用到的加解密、图片变换处理等功能。

我们项目中有一个照片后期处理的功能,使用C++实现后比原先在上层实现性能提升了一个数量级,从每个照片500ms下降为30~40ms。

这方面Rust似乎更有优势一点,一般认为Rust的性能更好。(这个没有实际验证过)

2、安全性需求

还是以前面的加解密为例

需要加密传输的数据都是有一定安全性需求的。

上层代码相对来说比较容易通过反编译进行破解。

使用底层实现后一方面反编译的难度加大,另一方面也有一些比较成熟的手段进行进一步的加固和防护。

这方面C++貌似更有优势,C++在安全领域的实践比较多。

3、复用历史代码

这就是生态的问题了

有些公司会有一些历史积累下来的so库。

开发中也希望能利用这些积累,节省开发时间。

比如老刘项目中用到的pdf文件解析库,就是这种情况。

在生态上来说,现阶段还是C++更丰富一些。Rust我觉得还是需要一些时间进行追赶。

总结一下,如果是因为性能等原因需要开发一个新的so库,我更建议使用Rust。

毕竟在内存安全、语言易用性等方面Rust更具优势。

如果是复用现有的so库或者使用第三方库,也就是无所谓使用什么编程语言了。

反正对Flutter来说都是一样的。

只不过因为历史积累的原因,我们通常用到的三方库还是以C++居多。

好了,就先聊这些,如果看到这里的同学有学习Flutter的兴趣,欢迎联系老刘,我们互相学习。

点击免费领老刘整理的《Flutter开发手册》,覆盖90%应用开发场景。

可以作为Flutter学习的知识地图。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有